package com.jiuyue.datasource.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author jobob
 * @since 2021-09-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ExternalContact implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 外部联系人的userid
     */
    private String externalUserid;

    private String position;

    /**
     * 外部联系人的名称
     */
    private String name;

    /**
     * 外部联系人头像，第三方不可获取
     */
    private String avatar;

    /**
     * 外部联系人所在企业的简称，仅当联系人类型是企业微信用户时有此字段
     */
    private String corpName;

    /**
     * 外部联系人所在企业的主体名称，仅当联系人类型是企业微信用户时有此字段
     */
    private String corpFullName;

    /**
     * 外部联系人的类型，1表示该外部联系人是微信用户，2表示该外部联系人是企业微信用户
     */
    private Integer type;

    /**
     * 外部联系人性别 0-未知 1-男性 2-女性
     */
    private Integer gender;

    /**
     * 外部联系人的名字
     */
    private String userName;

    /**
     * 外部联系人在微信开放平台的唯一身份标识（微信unionid），通过此字段企业可将外部联系人与公众号/小程序用户关联起来。仅当联系人类型是微信用户，且企业或第三方服务商绑定了微信开发者ID有此字段。查看绑定方法
     */
    @TableField("unionId")
    private String unionid;

    /**
     * 此外部联系人所属用户的id
     */
    private String userid;

    /**
     * 生成邀请链接的state参数
     */
    private String wxOpenid;

    /**
     * 用户的生日
     */
    private LocalDateTime birthday;

    /**
     * 外部联系人是否删除，0未删除，1删除
     */
    private Integer status;

    /**
     * 所属租户id
     */
    private String tenantId;

    /**
     * 添加此用户的「联系我」方式配置的state参数，可用于识别添加此用户的渠道
     */
    private String state;

    /**
     * 评分
     */
    private Integer score;

    /**
     * 评分备注
     */
    private String scoringNotes;

    /**
     * 外部联系人添加时间
     */
    private LocalDateTime createTime;

    /**
     * 外部联系人更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 精确到日的创建日期
     */
    private LocalDateTime createDayTime;


}
